<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html lang="en" xmlns="http://java.sun.com/jsf/html">
<head>
    <meta charset="UTF-8">
    <title>自助报表-配置说明</title>
    <link rel="stylesheet" href="<%=request.getContextPath()%>/plugins/layui/css/layui.css">
    <style>
        .title{
            padding-left:30px;
            padding-top: 20px;
        }
        body {
            color: #393D49;
        }

        #content {
            font-size: 15px;
            font-family: initial;
        }

        #content ol li{
            font-size: 15px;
        }

        #content a {
            color: #1E9FFF;
        }
        .layui-tree-skin-treeStyle{
            font-family: initial;
        }
    </style>
</head>
<script src="<%=request.getContextPath()%>/plugins/layui/layui.js"></script>
<body>
    <ul class="layui-nav">
        <li class="layui-nav-item">
            <a style="font-size: 18px;">自助报表配置说明</a>
        </li>
    </ul>
    <div width="100%" style="padding-left: 100px; padding-right: 100px;">
        <div style="height:600px;float: left; width: 20%; position:fixed;padding-top:10px;overflow:auto">
            <ul id="tree"></ul>
        </div>
        <div id="content" style="float: left; width: 70%; margin-left: 350px; height:70%; padding-bottom: 150px;">
            <h1>开始使用</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <p>
                    使用报表工具进行报表开发时主要工作就是配置报表相关的xml文件，对于复杂报表的配置xml文件配置的难度
                    也会相应增大，本文档用于说明报表配置中各元素的功能及使用方式，降低报表开发人员的开发难度，在配置
                    报表时需要注意，<b>sort、</b><b>order</b>为报表工具的关键字在配置报表时不能使用这两个关键字，
                    报表配置区分大小写;配置中大于号用<b>&amp;gt;</b>替换;小于号用<b>&amp;lt;</b>替换。
                </p>
            </blockquote>

            <h1 id="report">report</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>report</b>是报表配置的根元素，一个report表示一张报表，report元素中可配置多个属性用以控制报表的功能，
                report的配置如下
            </blockquote>
            <pre class="layui-code">
&lt;report name="示例报表"
        needSum="1"
        needPage="0"
        needImport=""
        needOffLine=""
        needAnalysis=""
        rptStyle=""
        tmplateType=""
        thirdParam=""
        initCondition=""
        isHideCondition=""
        selfDefine="">
&lt;/report>
            </pre>

            <h1 id="reportName">name</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>name</b>是report元素的属性，用于配置报表名称，该属性为必配属性
            </blockquote>
            <pre class="layui-code">
&lt;report name="演示报表">&lt;/report>
            </pre>

            <h1 id="needQuery">needQuery</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>needQuery</b>是report元素的属性，用于配置报表是否需要展示查询按钮，该属性可配置的值为：0-不需要  1-需要，
                该属性为可选配置，默认展示<br>
                注：如果报表没有查询条件，在某些情况下无需查询按钮，此时可配置此属性
            </blockquote>
            <pre class="layui-code">
&lt;!--报表需要展示查询按钮(needQuery="1"时，该属性可不配置，因为不配置默认展示查询按钮)-->
&lt;report name="演示报表" needQuery="1">&lt;/report>
&nbsp;
&lt;!--报表不展示查询按钮-->
&lt;report name="演示报表" needQuery="0">&lt;/report>
            </pre>

            <h1 id="needSum">needSum</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>needSum</b>是report元素的属性，用于配置报表是否需要汇总，该属性可配置的值为：0-不汇总  1-汇总，
                该属性为可选配置，默认不汇总
            </blockquote>
            <pre class="layui-code">
&lt;!--报表需要汇总-->
&lt;report name="演示报表" needSum="1">&lt;/report>
&nbsp;
&lt;!--报表不汇总(needSum="0"时，该属性可不配置，因为不配置默认即为不汇总)-->
&lt;report name="演示报表" needSum="0">&lt;/report>
            </pre>

            <h1 id="needPage">needPage</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>needPage</b>是report元素的属性，用于配置报表是否需要分页，该属性可配置的值为：0-不分页  1-分页，
                该属性为可选配置，默认不分页
            </blockquote>
            <pre class="layui-code">
&lt;!--报表需要分页-->
&lt;report name="演示报表" needPage="1">&lt;/report>
&nbsp;
&lt;!--报表不分页(needPage="0"时，该属性可不配置，因为不配置默认即为不分页)-->
&lt;report name="演示报表" needPage="0">&lt;/report>
            </pre>

            <h1 id="needImport">needImport</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>needImport</b>是report元素的属性，用于配置报表是否可以导出，该属性可配置的值为：0-可以导出  1-不可以导出，
                该属性为可选配置，默认可以导出
            </blockquote>
            <pre class="layui-code">
&lt;!--报表可以导出(needImport="0"时，该属性可不配置，因为不配置默认可以导出)-->
&lt;report name="演示报表" needImport="1">&lt;/report>
&nbsp;
&lt;!--报表不可以导出-->
&lt;report name="演示报表" needImport="0">&lt;/report>
            </pre>

            <h1 id="needOffLine">needOffLine</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>needOffLine</b>是report元素的属性，用于配置报表是否可以离线下载，该属性可配置的值为：0-不可以  1-可以，
                该属性为可选配置，默认不需要离线下载。<br>
                注：报表的离线下载功能需要接入报表的系统提供离线下载服务，供报表工具调用
            </blockquote>
            <pre class="layui-code">
&lt;!--报表可以离线下载-->
&lt;report name="演示报表" needOffLine="1">&lt;/report>
&nbsp;
&lt;!--报表不可以离线下载(needOffLine="0"时，该属性可不配置，因为不配置默认不可以离线下载)-->
&lt;report name="演示报表" needOffLine="0">&lt;/report>
            </pre>

            <h1 id="needAnalysis">needAnalysis</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>needAnalysis</b>是report元素的属性，用于配置报表是否是分析报表，该属性可配置的值为：0-否  1-是，
                该属性为可选配置，默认不是分析报表。<br>
                注：报表工具可以将报表配置为普通报表和分析报表，分析报表可以根据报表不同的维度组合分类汇总，普通报表仅提供基本的查询功能
            </blockquote>
            <pre class="layui-code">
&lt;!--报表是分析报表(如果报表是分析报表，则必须同时配置tmplateType="1")-->
&lt;report name="演示报表" needAnalysis="1" tmplateType="1">&lt;/report>
&nbsp;
&lt;!--报表不是分析报表(needAnalysis="0"时，该属性可不配置，因为不配置默认不是分析报表)-->
&lt;report name="演示报表" needAnalysis="0">&lt;/report>
            </pre>

            <h1 id="rptStyle">rptStyle</h1>
            <hr>
            <blockquote class="layui-elem-quote layui-quote-nm">
                <b>rptStyle</b>是report元素的属性，用于配置报表页面的展示样式。<br>
                注：该属性目前报表工具尚未实现，该属性是预留属性
            </blockquote>

            <h1 id="tmplateType">tmplateType</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>tmplateType</b>是report元素的属性，用于配置报表查询类型，该属性可配置的值为：0-cube查询  1-非cube查询，
                该属性为可选配置，默认是cube查询。<br>
                注：当该属性值配置为1时，需要和needAnalysis="1"结合使用
            </blockquote>
            <pre class="layui-code">
&lt;!--报表是非cube查询(如果报表是非cube查询，则必须同时配置needanalysis="1")-->
&lt;report name="演示报表" needAnalysis="1" tmplateType="1">&lt;/report>
&nbsp;
&lt;!--报表是cube查询(tmplateType="0"时，该属性可不配置，因为不配置默认是cube查询)-->
&lt;report name="演示报表" tmplateType="0">&lt;/report>
            </pre>

            <h1 id="thirdParam">thirdParam</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>thirdParam</b>是report元素的属性，用于配置报表接入系统传入的参数，该配置的值和接入系统传入的
                参数名相同，如果接收多个参数则多个参数间用逗号分隔，该属性为可选配置<br>
                例如：报表接入系统传入向报表传入机构代码(orgCode="00001")、用户ID(userId="admin")，如果报表希望获取参数值，
                那么该属性配置的值为orgCode,userId；报表获取接入系统传入的值用于树组件的权限控制
            </blockquote>
            <pre class="layui-code">
&lt;report name="演示报表" thirdParam="orgCode,userId">&lt;/report>
            </pre>

            <h1 id="initCondition">initCondition</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>initCondition</b>是report元素的属性，用于配置报表的初始参数，该属性的值须能够在column元素
                的aliasField属性中找到对应的值，该属性配置的值在报表下钻时使用，该属性为可选配置
            </blockquote>
            <pre class="layui-code">
&lt;report name="演示报表" initCondition="custCode,custName">&lt;/report>
            </pre>

            <h1 id="isHideCondition">isHideCondition</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>isHideCondition</b>是report元素的属性，当报表的查询条件过多时，用于配置查询条件是否
                隐藏，该属性可配置的值为：0-不隐藏 1-隐藏，该属性为可选配置，默认不隐藏<br>
                注：查询条件过多时会将非必输的查询条件隐藏
            </blockquote>
            <pre class="layui-code">
&lt;!--隐藏非必输的查询条件-->
&lt;report name="演示报表" isHideCondition="1">&lt;/report>
&nbsp;
&lt;!--不隐藏查询条件(isHideCondition="0"时，该属性可不配置，因为不配置默认不隐藏查询条件)-->
&lt;report name="演示报表" isHideCondition="0">&lt;/report>
            </pre>

            <h1 id="selfDefine">selfDefine</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>selfDefine</b>是report元素的属性，用于配置报表是否可生成自定义报表，该属性可配置的值为：0-不可以  1-可以，
                该属性为可选配置，默认不可以自定义报表。<br>
                注：自定义报表功能需要接入报表的系统提供自定义报表服务，供报表工具调用
            </blockquote>
            <pre class="layui-code">
&lt;!--报表提供自定义报表的功能-->
&lt;report name="演示报表" selfDefine="1">&lt;/report>
&nbsp;
&lt;!--报表不提供自定义报表的功能(selfDefine="0"时，该属性可不配置，默认不提供自定义报表功能)-->
&lt;report name="演示报表" selfDefine="0">&lt;/report>
            </pre>

            <h1 id="column">column</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>column</b>是report元素的子元素，每个column元素代表报表的一列，column元素中可配置多个属性用以控制报表列的显示，
                column的配置如下
            </blockquote>
            <pre class="layui-code">
&lt;report name="示例报表"
    &nbsp;
    &lt;column name="利润"
            aliasName="利润(据实)"
            field="a.profit"
            aliasField="profit"
            colType="0"
            width="120"
            align="center"
            isCondition="1"
            conditionType="2"
            isNeed="1"
            defaultValue="10"
            formatter="yyyyMMdd"
            dbFormatter="yyyy-MM-dd"
            isDrill="1"
            relateName=""
            queryType="1"
            isLock="1"
            isSumCol="1"
            isCount="1"
            isOrOperator="1"
            innerDim="orgCode"
            isShow="0"
            numberFormat="3"
            dynamicFormat="formatType"
            isSQLColumn="1"
            isQueryColumn="1"
            group="利润"
            isSort="1"
            isSelect="1"
            conditionLevel="0"
            cascade=""
            unit="元"
            isVisibility="1"
            isDateType="0"
    &lt;/column>
    &nbsp;
&lt;/report>
            </pre>

            <h1 id="columnName">name</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>name</b>是column元素的属性，用于显示报表列的名称，该属性为必配属性
            </blockquote>
            <pre class="layui-code">
&lt;column name="利润">&lt;/column>
            </pre>

            <h1 id="aliasName">aliasName</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>aliasName</b>是column元素的属性，用于显示报表列的别名，该属性为可选配置，默认和name属性的值相同。<br>
                注：aliasName属性的使用场景如下：报表中在存在两个名称相同的列，但是意义不同，如报表中存在相同的两列，列名为利润
                但是一列表示据实利润值另一列表示电商利润，且这两列都做为报表的查询条件，此时查询条件如果都显示利润，那么用户无法区分每个
                查询条件的实际意义，这时就需要通过aliasName来做区分
            </blockquote>
            <pre class="layui-code">
&lt;--列别名为利润(据实)-->
&lt;column name="利润" aliasName="利润(据实)">&lt;/column>
&nbsp;
&lt;--列别名为利润(电商)-->
&lt;column name="利润" aliasName="利润(电商)">&lt;/column>
            </pre>

            <h1 id="field">field</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>field</b>是column元素的属性，用于定义报表列对应于数据的表字段，该属性的值用于查询SQL的拼接，
                该属性为必配属性
            </blockquote>
            <pre class="layui-code">
&lt;column name="利润" aliasName="利润(据实)" field="a.profit">&lt;/column>
            </pre>

            <h1 id="aliasField">aliasField</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>aliasField</b>是column元素的属性，用于配置数据表字段的别名，该属性的值用于查询SQL的拼接，
                该属性为必配属性<br>
                注：该属性的值不能为报表工具的关键字<b>sort、order</b>
            </blockquote>
            <pre class="layui-code">
&lt;column name="利润" aliasName="利润(据实)" field="a.profit" aliasField="profit">&lt;/column>
            </pre>

            <h1 id="colType">colType</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>aliasField</b>是column元素的属性，用于配置报表的列是指标还是维度，该属性可配置的值为：0-指标
                1-维度 3-隐藏维度 4-隐藏指标，该属性为必配属性<br>
                注：隐藏维度、隐藏指标表示列在Excel表头中存在，但是在报表页面不显示，隐藏指标和隐藏维度通常用于报表下钻传值
            </blockquote>
            <pre class="layui-code">
&lt;!--配置报表利润列为指标列-->
&lt;column name="利润" aliasName="利润(据实)" field="a.profit" aliasField="profit" colType="0">&lt;/column>
&nbsp;
&lt;!--配置报表客户名称列为维度列-->
&lt;column name="客户名称" field="a.custName" aliasField="custName" colType="1">&lt;/column>
            </pre>

            <h1 id="width">width</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>width</b>是column元素的属性，用于配置报表页面中列的宽度，该属性为可选配置
            </blockquote>
            <pre class="layui-code">
&lt;!--配置报表利润列的列宽为120px-->
&lt;column name="利润" aliasName="利润(据实)" field="a.profit" aliasField="profit" colType="0" width="120">&lt;/column>
            </pre>

            <h1 id="align">align</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>align</b>是column元素的属性，用于配置报表列的对齐方式，该属性可配置的值为：left-左对齐 center-居中对齐 right-右对齐，
                该属性为可选配置，默认为左对齐
            </blockquote>
            <pre class="layui-code">
&lt;!--配置报表利润列左对齐(align="left"时，该属性可不配置，因为不配置默认即左对齐)-->
&lt;column name="利润" aliasName="利润(据实)" field="a.profit" aliasField="profit" colType="0" align="left">&lt;/column>
&nbsp;
&lt;!--配置报表利润列居中对齐-->
&lt;column name="利润" aliasName="利润(据实)" field="a.profit" aliasField="profit" colType="0" align="center">&lt;/column>
&nbsp;
&lt;!--配置报表利润列居右对齐-->
&lt;column name="利润" aliasName="利润(据实)" field="a.profit" aliasField="profit" colType="0" align="right">&lt;/column>
            </pre>

            <h1 id="isCondition">isCondition</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>isCondition</b>是column元素的属性，用于配置报表列是否是查询列，该属性可配置的值为：0-否 1-是，
                该属性是可选配置，默认不是查询列<br>
                注：报表列是查询列的意思是：如果报表列是查询列，那么该列会作为报表的查询条件，该属性需要和conditionType属性结合使用
            </blockquote>
            <pre class="layui-code">
&lt;!--配置报表列为查询列-->
&lt;column name="利润" aliasName="利润(据实)" field="a.profit" aliasField="profit" colType="0" isCondition="1" conditionType="1">&lt;/column>
&nbsp;
&lt;!--配置报表列不是查询列(isCondition="0"时，该属性可不用配置，因为默认即不是查询列)-->
&lt;column name="利润" aliasName="利润(据实)" field="a.profit" aliasField="profit" colType="0" isCondition="0">&lt;/column>
            </pre>

            <h1 id="conditionType">conditionType</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>conditionType</b>是column元素的属性，用于配置查询列的类型，该属性可配置的值为：1-输入框  2-下拉框  3-日期  4-日期区间  5-树  6-值区间<br>
                7-多选下拉框，当isCondition="1"时，该配置为必配属性，否则该属性为可选配置
            </blockquote>
            <pre class="layui-code">
&lt;!--配置报表列为查询列,查询条件为输入框-->
&lt;column name="利润" aliasName="利润(据实)" field="a.profit" aliasField="profit" colType="0" isCondition="1" conditionType="1">&lt;/column>
&nbsp;
&lt;!--配置报表列为查询列，查询条件为下拉框(下拉框必须要配置select或selectDim子元素)-->
&lt;column name="审批层级" field="a.checkLvl" aliasField="checkLvl" colType="1" isCondition="1" conditionType="2">
    &lt;!--select元素后续章节会有说明-->
    &lt;select key="0" value="省"></select>
    &lt;select key="1" value="市"></select>
    &lt;select key="2" value="区县"></select>
&lt;/column>
&nbsp;
&lt;!--配置报表列为查询列，查询条件为日期(查询条件为日期时必须要配置formatter(日期格式化类型))-->
&lt;column name="时间" field="a.date" aliasField="date" colType="1" isCondition="1" conditionType="3" formatter="yyyyMMdd">&lt;/column>
&nbsp;
&lt;!--配置报表列为查询列，查询条件为日期区间(查询条件为日期区间时必须要配置formatter(日期格式化类型))-->
&lt;column name="时间" field="a.date" aliasField="date" colType="1" isCondition="1" conditionType="4" formatter="yyyyMMdd">&lt;/column>
&nbsp;
&lt;!--配置报表列为查询列，查询条件为树(查询条件为树时必须要配置treeDim)-->
&lt;column name="机构" field="a.orgCode" aliasField="orgCode" colType="1" isCondition="1" conditionType="5">
    &lt;!--treeDim元素在后续章节会有说明-->
    &lt;treeDim table="orgInfo" code="orgCode" name="orgName" upcode="upperCode"/>
&lt;/column>
&nbsp;
&lt;!--配置报表列为查询列，查询条件为值区间-->
&lt;column name="机构" field="a.orgCode" aliasField="orgCode" colType="1" isCondition="1" conditionType="6">&lt;/column>
&nbsp;
&lt;!--配置报表列为查询列，查询条件为多选下拉框(多选下拉框必须要配置select或selectDim子元素)-->
&lt;column name="审批层级" field="a.checkLvl" aliasField="checkLvl" colType="1" isCondition="1" conditionType="7">
    &lt;!--select元素后续章节会有说明-->
    &lt;select key="0" value="省"></select>
    &lt;select key="1" value="市"></select>
    &lt;select key="2" value="区县"></select>
&lt;/column>
            </pre>

            <h1 id="isNeed">isNeed</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>isNeed</b>是column元素的属性，用于配置报表的查询条件是否是必输选项，该属性可配置的值为：0-非必输  1-必输,
                该属性为可选配置，默认是非必输<br>
                注：该属性用于控制查询条件，所以只有当isCondition="1"时该配置的值才有实际意义
            </blockquote>
            <pre class="layui-code">
&lt;!--配置报表列为查询列，且查询条件必须输入-->
&lt;column name="利润" aliasName="利润(据实)" field="a.profit" aliasField="profit" colType="0" isCondition="1" conditionType="1" isNeed="1">&lt;/column>
&nbsp;
&lt;!--配置报表列是查询列，查询条件非必输(isNeed="0"时，该属性可不用配置，因为默认即非必输)-->
&lt;column name="利润" aliasName="利润(据实)" field="a.profit" aliasField="profit" colType="0" isCondition="1" conditionType="1" isNeed="0">&lt;/column>
            </pre>

            <h1 id="defaultValue">defaultValue</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>defaultValue</b>是column元素的属性，用于配置报表的查询条件的默认值，当查询条件为日期类型时，<br>
                -1表示上一个时间周期（如：-1表示前一天、前一个月、前一年，-2表示前2天、前2个月、前2年，以此类推）<br>
                1表示下一个时间周期（如：1表示下一个、下一个月、下一年，2表示后2天、后2个月、后2年，以此类推）<br>
                如果查询条件为日期类型，且defaultValue未配置，则默认为当前日期；如果查询条件不是日期类型，且defaultValue
                未配置，则查询条件没有默认值，该属性为可选配置<br>
                注：该属性用于控制查询条件，所以只有当isCondition="1"时该配置的值才有实际意义，树组件的默认值不通过该属性配置
            </blockquote>
            <pre class="layui-code">
&lt;!--配置报表列为查询列，查询输入框的默认值为100-->
&lt;column name="利润" aliasName="利润(据实)" field="a.profit" aliasField="profit" colType="0" isCondition="1" conditionType="1" defaultValue="100">&lt;/column>
&nbsp;
&lt;!--配置报表列为查询列，单选下拉框的默认值为省-->
&lt;column name="利润" aliasName="利润(据实)" field="a.profit" aliasField="profit" colType="0" isCondition="1" conditionType="2" defaultValue="0">
&lt;select key="0" value="省">
&lt;select key="1" value="市">
&lt;select key="2" value="区县">
&lt;/column>
&nbsp;
&lt;!--配置报表列为查询列，多选下拉框的默认值为省、市(多选下拉框多个默认值使用逗号分隔)-->
&lt;column name="利润" aliasName="利润(据实)" field="a.profit" aliasField="profit" colType="0" isCondition="1" conditionType="7" defaultValue="0,1">
&lt;select key="0" value="省">
&lt;select key="1" value="市">
&lt;select key="2" value="区县">
&lt;/column>
&nbsp;
&lt;!--配置报表列为查询列，值区间默认值为10-20(对于值区间的默认值，如果区间的开始默认值和结束默认值不同，那么默认值用逗号分隔)-->
&lt;column name="业务量" field="a.mail_cnt_kj" aliasField="mailCntKJ" colType="0" isCondition="1" conditionType="6" defaultValue="10,20">
&lt;/column>
&nbsp;
&lt;!--配置报表列是查询列，且查询类型为日期类型(conditionType="3")，假如当前日期为20180911-->
&lt;!--当formatter="yyyyMMdd"且defaultValue="-1"，那么日期框中的默认值为20180910(前一天)-->
&lt;!--当formatter="yyyyMM"且defaultValue="-1"，那么日期框中的默认值为201808(前一个月)-->
&lt;!--当formatter="yyyy"且defaultValue="-1"，那么日期框中的默认值为2017(前一年)-->
&lt;!--当formatter="yyyyMMdd"且defaultValue="1"，那么日期框中的默认值为20180912(下一天)-->
&lt;!--当formatter="yyyyMM"且defaultValue="1"，那么日期框中的默认值为201810(下一个月)-->
&lt;!--当formatter="yyyy"且defaultValue="1"，那么日期框中的默认值为2019(下一年)-->
&lt;column name="日期" field="a.date" aliasField="date" colType="1" isCondition="1" conditionType="3" formatter="yyyyMMdd" defaultValue="-1">&lt;/column>
&nbsp;
&lt;!--日期区间默认值的配置和值区间类似，如果开始日期的默认值和结束日期的默认值不同，那么默认值使用逗号分隔-->
&lt;column name="日期" field="a.date" aliasField="date" colType="1" isCondition="1" conditionType="4" formatter="yyyyMMdd" defaultValue="-1,1">&lt;/column>
&nbsp;
&lt;!--日期默认值未配置则默认展示当天,如果日期框无需展示日期，需要用户自己选择,则需要将日期的默认值置为NULL(必须大写)-->
&lt;column name="日期" field="a.date" aliasField="date" colType="1" isCondition="1" conditionType="3" formatter="yyyyMMdd" defaultValue="NULL">&lt;/column>
&lt;column name="日期" field="a.date" aliasField="date" colType="1" isCondition="1" conditionType="4" formatter="yyyyMMdd" defaultValue="2,NULL">&lt;/column>
&nbsp;
&lt;!--当formatter="yyyyMMdd"且defaultValue未配置，那么日期框中的默认值为当前日期-->
&lt;column name="日期" field="a.date" aliasField="date" colType="1" isCondition="1" conditionType="3" formatter="yyyyMMdd">&lt;/column>
            </pre>

            <h1 id="formatter">formatter</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>formatter</b>是column元素的属性，用于配置报表日期查询条件的格式化方式，当conditionType="3"或conditionType="4"时该属性为比配属性，否则
                该属性为可选配置，该配置可配置的值如：yyyyMMdd、yyyyMMdd HH:mm:ss等(符合日期格式化的方式均可配置)<br>
                注：该属性用于控制日期查询条件，所以只有当isCondition="1"且conditionType="3"或conditionType="4"时该配置的值才有实际意义
            </blockquote>
            <pre class="layui-code">
&lt;!--配置报表列为日期查询列-->
&lt;column name="日期" field="a.date" aliasField="date" colType="1" isCondition="1" conditionType="3" formatter="yyyyMMdd">&lt;/column>
            </pre>

            <h1 id="dbFormatter">dbFormatter</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>dbFormatter</b>是column元素的属性，报表查询条件中日期的格式化方式默认和数据库中日期的格式化方式是相同的，如前台页面日期的格式化方式为
                yyyyMMdd那么数据库中对应的日期字段存储的格式也是yyyyMMdd格式，如果前台页面中日期的格式化方式和数据库中日期的格式化方式不同，此时就需要配置
                dbFormatter属性，用于配置数据库中日期字段的格式化方式，该属性可配置的值为：yyyy-MM-dd、yyyyMMdd等(符合日期格式化的方式均可配置)，该属性
                为可选配置，默认值和formatter属性的值相同<br>
                注：该属性用于控制日期查询条件，所以只有当isCondition="1"且conditionType="3"或conditionType="4"时该配置的值才有实际意义
            </blockquote>
            <pre class="layui-code">
&lt;!--配置报表列为日期查询列-->
&lt;column name="日期" field="a.date" aliasField="date" colType="1" isCondition="1" conditionType="3" formatter="yyyyMMdd" dbFormatter="yyyy-MM-dd">&lt;/column>
            </pre>

            <h1 id="isDrill">isDrill</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>dbFormatter</b>是column元素的属性，用于配置报表列是否可以下钻，该属性可配置的值为：0-不可下钻 1-可下钻，该属性为可选配置，默认不下钻
            </blockquote>
            <pre class="layui-code">
&lt;!--配置报表列不可下钻(isDrill="0"时，该属性可不配置，因为不配置默认不可下钻)-->
&lt;column name="客户数" field="a.custCnt" aliasField="custCnt" colType="0" isDrill="0">&lt;/column>
&nbsp;
&lt;!--配置报表列可下钻(如果列可下钻，则必须配置&lt;drill>子元素)-->
&lt;column name="客户数" field="a.custCnt" aliasField="custCnt" colType="0" isDrill="1">
    &lt;!--drill元素后续章节会有详细说明-->
    &lt;drill reportId="10" param="date" conditionParam="profit">&lt;/drill>
&lt;/column>
            </pre>

            <h1 id="relateName">relateName</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>relateName</b>是column元素的属性，用于配置报表列下钻时，属性编码对应的属性名称字段，该属性为可选配置；
                报表下钻时通常传递的是属性名称，如果下钻页面需要显示属性编码且属性编码为查询条件，则需要在属性编码的查询条件列
                上配置该属性。<br>
                注：该属性通常配置报表的下钻页面中，且针对conditionType="5"(树)、conditionType="2"(下拉框)、
                conditionType="7"(多选下拉框)、conditionType="3"(日期区间)有效
            </blockquote>
            <pre class="layui-code">
&lt;!--配置报表列关联的名称列(机构编码orgCode对应的机构名称列为orgName)-->
&lt;column name="机构" field="a.orgCode" aliasField="orgCode" colType="0" isCondition="1" conditionType="5" relateName="orgName">&lt;/column>
            </pre>

            <h1 id="queryType">queryType</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>queryType</b>是column元素的属性，用于配置报表查询列中，输入框查询列的查询类型，该属性可配置的值为：0-模糊查询  1-精确查询，该属性为可选配置，
                默认为模糊查询。模糊查询的意思是后台拼接SQL时，查询条件的拼接方式为 LIKE '%custName%'；精确查询的意思是后台拼接SQL时，查询条件的拼接方式为 = 'custName'<br>
                注：该属性用于控制输入框查询条件，所以只有当isCondition="1"且conditionType="1"时该配置的值才有实际意义
            </blockquote>
            <pre class="layui-code">
&lt;!--配置报表输入框查询列(queryType="0"时，该属性可不配置，因为不配置默认为模糊查询)-->
&lt;column name="客户名称" field="a.custName" aliasField="custName" colType="1" iscondition="1" conditiontype="1" queryType="0">&lt;/column>
&nbsp;
&lt;!--配置报表输入框查询列(精确查询)-->
&lt;column name="客户名称" field="a.custName" aliasField="custName" colType="1" iscondition="1" conditiontype="1" queryType="1"&gt;&lt;/column>
            </pre>

            <h1 id="isLock">isLock</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>isLock</b>是column元素的属性，用于配置报表列是否冻结，该属性可配置的值为：0-否  1-是，该属性为可选配置，
                默认不冻结。
            </blockquote>
            <pre class="layui-code">
&lt;!--配置报表列不冻结(isLock="0"时，该属性可不配置，因为不配置默认不冻结)-->
&lt;column name="客户名称" field="a.custName" aliasField="custName" colType="1" isLock="0">&lt;/column>
&nbsp;
&lt;!--配置报表列冻结-->
&lt;column name="客户名称" field="a.custName" aliasField="custName" colType="1" isLock="1">&lt;/column>
            </pre>

            <h1 id="isSumCol">isSumCol</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>isSumCol</b>是column元素的属性，用于配置报表列是否是汇总列，该属性可配置的值为：0-否  1-是，该属性为可选配置，
                默认不是汇总列。<br>
                <b>需要特别注意的是：如果field包含四则运算符，那么相关配置项的field和aliasField的值必须相同。</b><br>
                注：只有当报表需要汇总是，该属性的值才有效，即report元素中属性needSum="1"时，该属性配置的值才有意义
            </blockquote>
            <pre class="layui-code">
&lt;!--配置报表列不是汇总列(isSumCol="0"时，该属性可不配置，因为不配置默认不是汇总列)-->
&lt;column name="客户数" field="a.custCnt" aliasField="custCnt" colType="0" isSumCol="0">&lt;/column>
&nbsp;
&lt;!--配置报表列是汇总列-->
&lt;column name="客户数" field="a.custCnt" aliasField="custCnt" colType="0" isSumCol="1">&lt;/column>
&nbsp;
&lt;!-汇总列含四则运算符-->
&lt;!-由于总成本为运输成本+处理成本，所以运输成本、处理成本的配置中field和aliasField配置的值必须相同-->
&lt;column name="运输成本" field="trans_fee" aliasField="trans_fee" colType="0" isSumCol="1">&lt;/column>
&lt;column name="处理成本" field="deal_fee" aliasField="deal_fee" colType="0" isSumCol="1">&lt;/column>
&lt;column name="总成本" field="trans_fee + deal_fee" aliasField="totalFee" colType="0" isSumCol="1">&lt;/column>
            </pre>

            <h1 id="isCount">isCount</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>isCount</b>是column元素的属性，用于配置报表列是否是计数列，该属性可配置的值为：0-否  1-是，该属性为可选配置，
                默认不是计数列。<br>
                注：只有当报表需要汇总是，该属性的值才有效，即report元素中属性needSum="1"时，该属性配置的值才有意义
            </blockquote>
            <pre class="layui-code">
&lt;!--配置报表列不是计数列(isCount="0"时，该属性可不配置，因为不配置默认不是汇总列)-->
&lt;column name="客户数" field="a.custCnt" aliasField="custCnt" colType="0" isCount="0">&lt;/column>
&nbsp;
&lt;!--配置报表列是计数列-->
&lt;column name="客户数" field="a.custCnt" aliasField="custCnt" colType="0" isCount="1">&lt;/column>
            </pre>

            <h1 id="isOrOperator">isOrOperator</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>isOrOperator</b>是column元素的属性，报表中的查询列在拼接SQL时默认是以AND方式做拼接，如需要使用OR查询，则需要
                做不同的配置，不同的配置方式如示例所示<br>
                注：该属性用于控制查询条件，所以只有当isCondition="1"时该配置的值才有实际意义，该属性可配置的值为：1-是OR查询 2-是OR查询 0-不是OR查询，
                该配置为可选配置，默认不是OR查询
            </blockquote>
            <pre class="layui-code">
示例一：查询条件为 【custCode='001' AND custName='客户一' AND mailCnt=100】，则配置如下(无需特殊设置，默认即是通过AND拼接)
&nbsp;
&lt;column name="客户代码" field="custCode" aliasField="custCode" colType="1" isCondition="1" conditionType="1">&lt;/column>
&lt;column name="客户名称" field="custName" aliasField="custName" colType="1" isCondition="1" conditionType="1">&lt;/column>
&lt;column name="业务量" field="mailCnt" aliasField="mailCnt" colType="0" isCondition="1" conditionType="1">&lt;/column>

&nbsp;
示例二：查询条件为【(userName='客户一' OR custName='客户一') AND mailCnt=100】,则配置如下(多个字段使用同一个值，如下面的示例中，userName和custName两个字段共用一个查询条件的值)
&nbsp;
&lt;column name="用户信息" field="userName,custName" aliasField="custInfo" isCondition="1" conditionType="1">&lt;/column>
&lt;column name="邮件量" field="mailCnt" aliasField="mailCnt" isCondition="1" conditionType="1">&lt;/column>
&nbsp;
field属性中配置多个值，多个值之间使用逗号分隔，则表示为OR查询，这中配置适用于(A OR B OR C) AND D 这种格式
&nbsp;
示例三：查询条件为【(userName='客户一' OR userName='客户二') AND mailCnt=100】,(一个字段可能会使用多个值，如下面示例中，userName可能为用户信息或客户信息)则配置如下
&nbsp;
&lt;column name="用户信息" field="userName" aliasField="custInfo,custName" isCondition="1" conditionType="1">&lt;/column>
&lt;column name="客户信息" field="custName" aliasField="custName" isCondition="1" conditionType="1">&lt;/column>
&lt;column name="邮件量" field="mailCnt" aliasField="mailCnt" isCondition="1" conditionType="1">&lt;/column>
&nbsp;
aliasField属性中配置多个值，多个值之间使用逗号分隔，则表示为OR查询，这中配置适用于(A OR A OR A) AND B 这种格式
&nbsp;
示例四：查询条件为【custCode='001' OR (custName='客户一' AND mailCnt=100)】,则配置如下
&nbsp;
&lt;column name="客户代码" field="a.custCode" aliasField="custCode" colType="1" isCondition="1" conditionType="1">&lt;/column>
&lt;column name="客户名称" field="a.custName" aliasField="custName" colType="1" isCondition="1" conditionType="1" isOrOperator="1">&lt;/column>
&lt;column name="业务量" field="a.mailCnt" aliasField="mailCnt" colType="0" isCondition="1" conditionType="1" isOrOperator="1">&lt;/column>
&nbsp;
此时需要在custName和mailCnt两列配置isOrOperator="1"表示这两列共同组成了or查询，这种配置适用于 (A AND B AND C) OR (D AND E)这种格式
&nbsp;
示例五：查询条件为【custCode='001' AND (custName='客户一' OR mailCnt=100)】,则配置如下
&nbsp;
&lt;column name="客户代码" field="a.custCode" aliasField="custCode" colType="1" isCondition="1" conditionType="1">&lt;/column>
&lt;column name="客户名称" field="a.custName" aliasField="custName" colType="1" isCondition="1" conditionType="1" isOrOperator="2">&lt;/column>
&lt;column name="业务量" field="a.mailCnt" aliasField="mailCnt" colType="0" isCondition="1" conditionType="1" isOrOperator="2">&lt;/column>
&nbsp;
此时需要在custName和mailCnt两列配置isOrOperator="2"表示这两列共同组成了or查询，这种配置适用于 (A OR B OR C) AND (D OR E)这种格式
            </pre>

            <h1 id="innerDim">innerDim</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>innerDim</b>是column元素的属性，用于配置和嵌套SQL的级联维度，在某些情况下嵌套SQL中的维度需要根据分析报表
                中选择的维度动态做GROUP BY，那么此时就需要配置innerDim属性，该属性的值必须要和嵌套SQL中的维度值相同，该属性为
                可选配置，默认不用配置<br>
                注：只有当报表列是维度列时，该属性配置的值才有意义
            </blockquote>
            <pre class="layui-code">
例如嵌套SQL为
&lt;nestFrom>
    SELECT custCode,custName,sum(mailCnt) from tb_custInfo group by custCode,custName
&lt;/nestFrom>
如果custName需要根据页面的维度是否选择动态的做group，例如页面选择客户名称维度，则拼接custName，否则不拼接，那么需要配置innerDim属性，配置如下：
&nbsp;
&lt;column name="客户名称" field="a.custName" aliasField="custName" colType="1" innerDim="custName">&lt;/column>
需要注意的是，innerDim的属性值必须和嵌套SQL中的维度值相同，本列中innerDim的值为custName和嵌套SQL中的custName对应
            </pre>

            <h1 id="isShow">isShow</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>isShow</b>是column元素的属性，用于配置报表列是否是额外配置列，该属性可配置的值为：0-是  1-否，该属性为可选配置，
                默认不是额外配置列。报表配置中除了Excel表头中的列外，有时还需要额外配置列用于传递参数或作为查询条件，此时需要配置isShow属性<br>
                注：不在Excel表头中的列均为额外配置列，此时isShow为必配属性，且属性的值为0
            </blockquote>
            <pre class="layui-code">
&lt;!--配置报表列不是额外添加的列(isShow="1"时，该属性可不配置，因为不配置默认不是额外添加列)-->
&lt;column name="客户数" field="a.custCnt" aliasField="custCnt" colType="0" isShow="1">&lt;/column>
&nbsp;
&lt;!--配置报表列是额外添加列-->
&lt;column name="客户数" field="a.custCnt" aliasField="custCnt" colType="0" isShow="0">&lt;/column>
            </pre>

            <h1 id="numberFormat">numberFormat</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>numberFormat</b>是column元素的属性，用于配置报表列的数字格式化方式，该属性可配置的值为：<br>
                1-百分比(直接加百分号)<br>
                2-百分比(乘以100后加百分号，默认保留两位小数)，如果有逗号，逗号后的数表示保留的小数位，如2,3表示保留3位小数,<br>
                ##-保留2位小数(2个#表示保留2位小数,3个#表示保留3位小数,依次类推)<br>
                0.01 - 表示当前数值*0.01(如果是0.001则表示当前数值*0.0001,依次类推)<br>
                该属性为可选配置
            </blockquote>
            <pre class="layui-code">
&lt;!--配置损益率以百分比显示(保留2为小数)-->
&lt;column name="损益率" field="a.perSu" aliasField="perSu" colType="0" numberFormat="2">&lt;/column>
&nbsp;
&lt;!--配置损益率以百分比显示(保留4为小数)-->
&lt;column name="损益率" field="a.perSu" aliasField="perSu" colType="0" numberFormat="2,4">&lt;/column>
&nbsp;
&lt;!--配置业务收入保留2为小数-->
&lt;column name="业务收入" field="a.mailFee" aliasField="mailFee" colType="0" numberFormat="##">&lt;/column>
&nbsp;
&lt;!--配置业务量以万计显示-->
&lt;column name="业务量" field="a.mailCount" aliasField="mailCount" colType="0" numberFormat="0.0001">&lt;/column>
            </pre>

            <h1 id="dynamicFormat">dynamicFormat</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>dynamicFormat</b>是column元素的属性，用于配置报表列动态格式化，该属性可配置的值为：<br>
                formatType-数字动态格式化<br>
                dateType-日期动态格式化<br>
                该属性为可选配置
            </blockquote>
            <pre class="layui-code">
&lt;!--配置业务收入动态格式化，dynamicFormat="formatType",必须同时配置计数方式，计数方式的配置格式固定-->
&lt;column name="业务收入" field="a.mailFee" aliasField="mailFee" colType="0" dynamicFormat="formatType">&lt;/column>
&nbsp;
&lt;!--dynamicFormat="formatType"时，计数方式列必须配置，该配置的属性值为固定配置，可直接使用，不用修改-->
&lt;column name="计数方式" field="formatType" aliasField="formatType" isSQLColumn="0" colType="0" isShow="0" isCondition="1" conditionType="2" isQueryColumn="0">
    &lt;select key="0.0001" value="万计" /&gt;
    &lt;select key="##" value="个计" />
&lt;/column>
&nbsp;
&nbsp;
&lt;!--通常情况下报表中保存的都是相同时间维度的数据，例如日期都是年、都是月或都是日，但有些情况下保存的数据同时包含年、月、日的数据，这种情况下需要配置日期动态格式化-->
&lt;!--配置日期动态格式化，dynamicFormat="dateType",必须同时配置以下2个周期类型,配置方式如下-->
&lt;column name="日期" field="date_code" aliasField="dateCode" colType="1" isCondition="1" conditionType="4" formatter="yyyyMMdd" dynamicFormat="dateType" width="80"/>
&nbsp;
&lt;!--dynamicFormat="dateType"时，以下周期类型列必须配置，其中cascadeDate属性的值为日期列的aliasField属性值-->
&lt;!--如果conditionType="4"则需配置2个值,"aliasField"_start,"aliasField"_end，此例中为dateCode_start,dateCode_end-->
&lt;!--除了cascadeDate的属性值外，其余属性值都是固定配置，不用做任何修改，可直接使用，select的配置也是 固定配置，不用修改-->
&lt;column name="周期类型" field="dateType" aliasField="dateType" isSQLColumn="0" colType="0" isShow="0" isCondition="1" conditionType="2" isQueryColumn="0"  cascadeDate="dateCode_start,dateCode_end" cascadeCondition="cycleType"&gt;
    &lt;select key="yyyyMMdd" value="日" /&gt;
    &lt;select key="yyyyMM" value="月" /&gt;
    &lt;select key="yyyy" value="年" /&gt;
&lt;/column>
&nbsp;
&lt;!--dynamicFormat="dateType"时，以下周期类型列必须配置，column中的属性值为固定配置，可直接使用不用修改-->
&lt;!--select中的key值和数据库中值对应，本例中数据库中区分年月日的值为d、m、y-->
&lt;column name="周期类型" field="cycle_type" aliasField="cycleType" colType="0" isShow="0" isCondition="1" conditionType="2" isVisibility="0" isQueryColumn="0">
	&lt;select key="d" value="日" /&gt;
	&lt;select key="m" value="月" /&gt;
	&lt;select key="y" value="年" /&gt;
&lt;/column>
            </pre>

            <h1 id="isSQLColumn">isSQLColumn</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>isSQLColumn</b>是column元素的属性，用于配置报查询列是否参与报表SQL中查询条件的拼接(即WHERE语句的拼接)，该属性可配置的值为：0-不参与  1-参与，
                该属性为可选配置，默认参与查询条件的拼接<br>
                注：当报表列是查询列时(isCondition="1")，该配置的值才有意义
            </blockquote>
            <pre class="layui-code">
&lt;!--配置报表列参与查询条件拼接(isSQLColumn="1"时，该属性可不配置，因为不配置默认参与查询列拼接)-->
&lt;column name="客户名称" field="a.custName" aliasField="custName" colType="1" isCondition="1" conditionType="1" isSQLColumn="1">&lt;/column>
&nbsp;
&lt;!--配置报表列不参与查询条件的拼接-->
&lt;column name="客户名称" field="a.custName" aliasField="custName" colType="1" isCondition="1" conditionType="1" isSQLColumn="0">&lt;/column>
            </pre>

            <h1 id="isQueryColumn">isQueryColumn</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>isQueryColumn</b>是column元素的属性，用于配置额外添加列是否是查询列(是否参与SELECT语句的拼接)，该属性可配置的值为：0-不是查询列  1-是查询列，
                该属性是可选配置，默认是查询列<br>
                注：当报表列是额外添加列时(isShow="0")，该配置的值才有意义
            </blockquote>
            <pre class="layui-code">
&lt;!--配置报表列是查询列(isQueryColumn="1"时，该属性可不配置，因为不配置默认是查询列)-->
&lt;column name="客户名称" field="a.custName" aliasField="custName" colType="1" isShow="0" isQueryColumn="1">&lt;/column>
&nbsp;
&lt;!--配置报表列不是查询列-->
&lt;column name="客户名称" field="a.custName" aliasField="custCnt" colType="1" isShow="0" isQueryColumn="0">&lt;/column>
            </pre>

            <h1 id="group">group</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>group</b>是column元素的属性，用于配置报表列的分组信息，该属性的值仅用于报表前台页面的展示，
                该属性是可选配置
            </blockquote>
            <pre class="layui-code">
&lt;!--据实利润和电商利润属于利润分组-->
&lt;column name="据实" aliasName="据实(利润)" group="利润" field="a.fee" aliasField="fee" colType="1">&lt;/column>
&nbsp;
&lt;column name="电商" aliasName="电商(利润)" group="利润" field="a.feeDs" aliasField="feeDs" colType="1">&lt;/column>
            </pre>

            <h1 id="isSort">isSort</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>isSort</b>是column元素的属性，用于配置报表列是否可以排序，该属性可配置的值为：0-不可排序 1-可排序，
                该属性是可选配置，默认不可以排序
            </blockquote>
            <pre class="layui-code">
&lt;!--配置报表不可以排序(isSort="0"，该属性可不配置，因为不配置默认不可以排序)-->
&lt;column name="据实" field="a.fee" aliasField="fee" colType="1" isSort="0">&lt;/column>
&nbsp;
&lt;!--配置报表可以排序-->
&lt;column name="电商" field="a.feeDs" aliasField="feeDs" colType="1" isSort="1">&lt;/column>
            </pre>

            <h1 id="isSelect">isSelect</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>isSelect</b>是column元素的属性，用于配置报表指标或维度是否已经勾选，该属性可配置的值为：0-未勾选 1-已勾选，
                该属性是可选配置，维度默认未勾选、指标默认已勾选<br>
                注：该属性的值只有在报表是分析报表时才有意义(report中needAnalysis="1" tmplateType="1"时)
            </blockquote>
            <pre class="layui-code">
&lt;!--配置报表维度列未勾选(colType="1"且isSelect="0"，该属性可配置，因为维度默认未勾选)-->
&lt;column name="据实" field="a.fee" aliasField="fee" colType="1" isSelect="0">&lt;/column>
&nbsp;
&lt;!--配置报表维度列勾选-->
&lt;column name="据实" field="a.fee" aliasField="fee" colType="1" isSelect="1">&lt;/column>
&nbsp;
&lt;!--配置报表指标列未勾选-->
&lt;column name="业务量" field="a.mailCnt" aliasField="mailCnt" colType="0" isSelect="0">&lt;/column>
&nbsp;
&lt;!--配置报表指标列勾选(colType="0"且isSelect="1"，该属性可配置，因为指标默认勾选)-->
&lt;column name="业务量" field="a.mailCnt" aliasField="mailCnt" colType="0" isSelect="1">&lt;/column>
            </pre>

            <h1 id="conditionLevel">conditionLevel</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>conditionLevel</b>是column元素的属性，用于配置报表查询列所属的SQL嵌套层级，该配置为可选配置，默认为最外层SQL的查询条件<br>
                注：该属性配置在查询列(isCondition="1")且报表有嵌套SQL时，该配置的值才有实际意义
            </blockquote>
            <pre class="layui-code">
&lt;!--例如嵌套SQL如下(nestFrom元素后续章节会有说明)-->
&lt;nestFrom>
    SELECT ORGCODE,ORGNAME,CUSTNAME FROM TB_ORGINFO
&lt;/nestFrom>
&nbsp;
&lt;!--配置报表查询列的层级-->
&lt;column name="机构代码" field="orgCode" aliasField="orgCode" colType="1" isCondition="1" conditionType="1" conditionLevel="0">&lt;/column>
&nbsp;
那么拼接SQL语句时，机构代码字段会拼接在嵌套SQL上，即：SELECT ORGCODE,ORGNAME,CUSTNAME FROM TB_ORGINFO WHERE orgCode='001'
            </pre>

            <h1 id="cascade">cascade</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>cascade</b>是column元素的属性，用于配置报表列的级联列，在报表配置中，我们可能会遇到如下情况：
                报表中的两列要么同时出现，要么同时不出现，这时可以使用该属性。该配置为可选配置<br>
                <b>注：级联列必须配置isQueryColumn="0"属性，如示例中的sort_id列必须配置isQueryColumn="0"</b>
            </blockquote>
            <pre class="layui-code">
&lt;!--配置报表机构代码列的级联列为sortId，如果查询机构代码则会同时查询sortId字段-->
&lt;column name="机构代码" field="org_code" aliasField="orgCode" colType="1" cascade="sortId">&lt;/column>
&nbsp;
&lt;column name="排序字段" field="sort_id" aliasField="sortId" colType="1" isShow="0" isQueryColumn="0">&lt;/column>
            </pre>

            <h1 id="unit">unit</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>unit</b>是column元素的属性，用于配置报表列的单位，该配置为可选配置
            </blockquote>
            <pre class="layui-code">
&lt;!--配置报表业务收入的单位为元-->
&lt;column name="业务收入" field="mailFee" aliasField="orgCode" colType="0" unit="元">&lt;/column>
&nbsp;
&lt;!--配置报表业务量的单位为件-->
&lt;column name="业务量" field="mailCnt" aliasField="mailCnt" colType="0" unit="件">&lt;/column>
            </pre>

            <h1 id="isVisibility">isVisibility</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>isVisibility</b>是column元素的属性，用于配置报表查询列或者分析报表左侧的指标、维度元素是否在页面显示，该属性可配置的值为：0-不显示 1-显示，
                该属性为可选配置，默认显示<br>
            </blockquote>
            <pre class="layui-code">
&lt;!--配置报表查询列显示(isVisibility="1"时，该属性可不用配置，因为默认显示)-->
&lt;column name="业务收入" field="mailFee" aliasField="orgCode" colType="0" isVisibility="1">&lt;/column>
&nbsp;
&lt;!--配置报表查询列隐藏-->
&lt;column name="业务量" field="mailCnt" aliasField="mailCnt" colType="0" isVisibility="0">&lt;/column>
            </pre>

            <h1 id="isDateType">isDateType</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>isDateType</b>是column元素的属性，用于配置报表列对应的数据库字段是否是日期类型，该属性可配置的值为：0-不是 1-是，
                如果是日期类型，用于将日期类型转换为字符串类型；该属性为可选配置，默认不是日期类型(默认是字符串类型)<br>
                注：配置该属性，必须同时配置formatter属性
            </blockquote>
            <pre class="layui-code">
&lt;!--配置报表列不是日期类型(isDateType="0"时，该属性可不用配置，因为默认不是日期类型)-->
&lt;column name="时间" field="mailFee" aliasField="orgCode" colType="1" isCondition="1" conditionType="3" formatter="yyyyMMdd" isDateType="0">&lt;/column>
&nbsp;
&lt;!--配置报表列是日期类型-->
&lt;column name="时间" field="mailCnt" aliasField="mailCnt" colType="1" isCondition="1" conditionType="3" formatter="yyyyMMdd" isDateType="1">&lt;/column>
            </pre>

            <h1 id="multiTreeMode">multiTreeMode</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>multiTreeMode</b>是column元素的属性，用于配置多tab树控件的选择模式，该属性可配置的值为：<br>
                0-多个tab树控件的选择是互斥的，即选择某个树控件后，前一次选择的值会被清空,最终选择的值是某一个树控件的值<br>
                1-多个tab树可同时选择，即最终选择的值是多个树控件的合集<br>
                该属性的默认值为0<br>
                注：该属性为可选配置，只有conditionType='5'且配置多个treeDim时，该属性的配置才有效果
            </blockquote>
            <pre class="layui-code">
&lt;!--multiTreeMode="0"时，该属性可不用配置，因为默认值即为0-->
&lt;column name="机构" field="clct_org_code" aliasField="clctOrgCode" colType="0" isShow="0" isCondition="1" conditionType="5" isQueryColumn="0" multiTreeMode="0">
  &lt;treeDim table="tb_res_org_zongbu_comb" code="org_code" name="org_sname" upcode="UP_ORG" order="sort_id" rightParam="alos_orgCode" dataSource="34" tabName="机构"/>
  &lt;treeDim table="tb_als_market_product_basic" code="org_code" name="org_sname" upcode="up_org" order="sort_id" rightParam="productCode" tabName="产品种类" dataSource="34" needSearch="1"/>
&lt;/column>
&nbsp;
&lt;!--multiTreeMode="1"-->
&lt;column name="机构" field="clct_org_code" aliasField="clctOrgCode" colType="0" isShow="0" isCondition="1" conditionType="5" isQueryColumn="0" multiTreeMode="1">
  &lt;treeDim table="tb_res_org_zongbu_comb" code="org_code" name="org_sname" upcode="UP_ORG" order="sort_id" rightParam="alos_orgCode" dataSource="34" tabName="机构"/>
  &lt;treeDim table="tb_als_market_product_basic" code="org_code" name="org_sname" upcode="up_org" order="sort_id" rightParam="productCode" tabName="产品种类" dataSource="34" needSearch="1"/>
&lt;/column>
&nbsp;
            </pre>

            <h1 id="fontColorByValue">fontColorByValue</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>fontColorByValue</b>是column元素的属性，用于和指定的值做比较，并根据比较的结果配置文字的颜色，该属性为可选配置<br>
                注：该属性配置的值有固定的格式，第一个值为比较的值，第二个值为小于比较值文字的颜色，第三个值为大于等于比较值文字的颜色，各个配置的值
                使用逗号分隔(如果未配置文字的颜色则使用默认文字颜色)，比较值必须配置，颜色值可选配
            </blockquote>
            <pre class="layui-code">
&lt;!-配置业务收入小于100文字使用红色显示，业务收入大于100文字使用绿色显示-->
&lt;column name="业务收入" field="cntFee" aliasField="cntFee" colType="0" fontColorByValue="100,red,green">&lt;/column>
&nbsp;
&lt;!--配置业务收入小于100文字使用红色显示-->
&lt;column name="业务收入" field="cntFee" aliasField="cntFee" colType="0" fontColorByValue="100,red">&lt;/column>
&nbsp;
&lt;!--配置业务收入大于100文字使用绿色显示-->
&lt;column name="业务收入" field="cntFee" aliasField="cntFee" colType="0" fontColorByValue="100,,green">&lt;/column>
&nbsp;
            </pre>

            <h1 id="fontColorByRange">fontColorByRange</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>fontColorByRange</b>是column元素的属性，用于和指定的值区间做比较，并根据比较的结果配置文字的颜色，该属性为可选配置<br>
                注：该属性配置的值有固定的格式，第一个值为比较的起始值，第二个值为比较的结束值，第三个值为小于起始值文字的颜色，第四个值为大于等于起始值
                小于结束值文字的颜色，第五个值为大于等于结束值文字的颜色，各个配置的值使用逗号分隔(如果未配置文字的颜色则使用默认文字颜色),起始值必须配置，颜色值可选配
            </blockquote>
            <pre class="layui-code">
&lt;!-配置业务收入小于0文字使用红色显示，0-100之间文字使用蓝色显示，业务收入大于100文字使用绿色显示-->
&lt;column name="业务收入" field="cntFee" aliasField="cntFee" colType="0" fontColorByRange="0,100,red,blue,green">&lt;/column>
&nbsp;
&lt;!--配置业务收入小于0文字使用红色显示，0-100之间文字使用默认颜色显示，业务收入大于100文字使用绿色显示-->
&lt;column name="业务收入" field="cntFee" aliasField="cntFee" colType="0" fontColorByRange="0,100,red,,green">&lt;/column>
&nbsp;
            </pre>

            <h1 id="fontColorByRow">fontColorByRow</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>fontColorByRow</b>是column元素的属性，用于和指定列的值做比较，并根据比较的结果配置文字的颜色，该属性为可选配置<br>
                注：该属性配置的值有固定的格式，第一个值为比较列的aliasField，第二个值为小于比较值文字的颜色，第三个值为大于等于比较值文字的颜色，
                各个配置的值使用逗号分隔(如果未配置文字的颜色则使用默认文字颜色)，列的aliasField必须配置，颜色值可选配
            </blockquote>
            <pre class="layui-code">
&lt;!-配置业务量2小于业务量1使用红色显示，业务量2大于业务量1使用绿色显示-->
&lt;column name="业务量1" field="cntFee1" aliasField="cntFee1" colType="0">&lt;/column>
&nbsp;
&lt;column name="业务量2" field="cntFee2" aliasField="cntFee2" colType="0" fontColorByRow="cntFee1,red,green">&lt;/column>
&nbsp;
&lt;!--配置业务量2小于业务量1使用红色显示-->
&lt;column name="业务量1" field="cntFee1" aliasField="cntFee1" colType="0">&lt;/column>
&nbsp;
&lt;column name="业务量2" field="cntFee2" aliasField="cntFee2" colType="0" fontColorByRow="cntFee1,red">&lt;/column>
&nbsp;
&lt;!--配置业务量2大于业务量1使用绿色显示-->
&lt;column name="业务量1" field="cntFee1" aliasField="cntFee1" colType="0">&lt;/column>
&nbsp;
&lt;column name="业务量2" field="cntFee2" aliasField="cntFee2" colType="0" fontColorByRow="cntFee1,,green">&lt;/column>
&nbsp;
            </pre>

            <h1 id="select">select</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>select</b>是column元素的子元素，如果报表查询列的类型是下拉框或多选下拉框，且下拉框的值无需通过数据库查询，
                则需要配置select元素(select元素和selectDim元素只能配置其中的一个)<br>
                注：该元素仅当查询列是下拉框类型时(conditionType="2"或conditionType="7")，才需要配置
            </blockquote>
            <pre class="layui-code">
&lt;!--配置下拉框的值-->
&lt;column name="审批层级" field="checkLvl" aliasField="checkLvl" colType="1" isCondition="1" conditionType="2"&gt;
    &lt;select key="" value="请选择"/>
    &lt;select key="0" value="省"/>
    &lt;select key="1" value="市"/>
    &lt;select key="2" value="区县"/>
&lt;/column>
            </pre>

            <h1 id="selectDim">selectDim</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>selectDim</b>是column元素的子元素，如果报表查询列的类型是下拉框或多选下拉框，且下拉框的值需要通过数据库查询，
                则需要配置selectDim元素(select元素和selectDim元素只能配置其中的一个)<br>
                注：该元素仅当查询类是下拉框类型时(conditionType="2"或conditionType="7")，才需要配置
            </blockquote>
            <pre class="layui-code">
&lt;!--配置下拉框的值(通过数据库查询)-->
&lt;column name="审批层级" field="checkLvl" aliasField="checkLvl" colType="1" isCondition="1" conditionType="3"&gt;
    &lt;selectDim table="tb_checklvl" code="checkCode" name="checkName" order="checkCode" dataSource="2"/>
&lt;/column>
            </pre>

            <h1 id="table">table</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>table</b>是selectDim元素的属性，用于配置下拉框的值来源于哪张表，该属性的值为表名，该属性为必配属性
            </blockquote>
            <pre class="layui-code">
&lt;column name="审批层级" field="checkLvl" aliasField="checkLvl" colType="1" isCondition="1" conditionType="3"&gt;
    &lt;!--配置下拉框的值来源于tb_checklvl表-->
    &lt;selectDim table="tb_checklvl" code="checkCode" name="checkName" order="checkCode" dataSource="2"/>
&lt;/column>
            </pre>

            <h1 id="selectCode">code</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>code</b>是selectDim元素的属性，用于配置下拉框的key值来源于表中的那个字段，该属性的值为数据库表的字段名，该属性为必配属性
            </blockquote>
            <pre class="layui-code">
&lt;column name="审批层级" field="checkLvl" aliasField="checkLvl" colType="1" isCondition="1" conditionType="3"&gt;
    &lt;!--配置下拉框的key值来源于tb_checklvl表的checkCode字段-->
    &lt;selectDim table="tb_checklvl" code="checkCode" name="checkName" order="checkCode" dataSource="2"/>
&lt;/column>
            </pre>

            <h1 id="selectName">name</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>name</b>是selectDim元素的属性，用于配置下拉框的value值来源于表中的那个字段，该属性的值为数据库表的字段名，该属性为必配属性
            </blockquote>
            <pre class="layui-code">
&lt;column name="审批层级" field="checkLvl" aliasField="checkLvl" colType="1" isCondition="1" conditionType="3"&gt;
    &lt;!--配置下拉框的value值来源于tb_checklvl表的checkName字段-->
    &lt;selectDim table="tb_checklvl" code="checkCode" name="checkName" order="checkCode" dataSource="2"/>
&lt;/column>
            </pre>

            <h1 id="selectOrder">order</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>order</b>是selectDim元素的属性，用于配置下拉框的数据的排序字段及排序方式，该属性为可选配置
            </blockquote>
            <pre class="layui-code">
&lt;column name="审批层级" field="checkLvl" aliasField="checkLvl" colType="1" isCondition="1" conditionType="3"&gt;
    &lt;!--配置下拉框的值根据sortId倒序排列(sortId是表tb_checklvl的字段)-->
    &lt;selectDim table="tb_checklvl" code="checkCode" name="checkName" order="sortId desc" dataSource="2"/>
&lt;/column>
            </pre>

            <h1 id="selectDataSource">dataSource</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>dataSource</b>是selectDim元素的属性，用于配置下拉框的数据的数据源，该属性为可选配置<br>
                注：下拉框的数据源默认和报表是相同的数据源，但是有些情况下下拉框的数据源和报表的数据源不同，这时下拉框的数据源需要额外配置
            </blockquote>
            <pre class="layui-code">
&lt;column name="审批层级" field="checkLvl" aliasField="checkLvl" colType="1" isCondition="1" conditionType="3"&gt;
    &lt;!--配置下拉框的值来源于数据源2-->
    &lt;selectDim table="tb_checklvl" code="checkCode" name="checkName" order="sortId desc" dataSource="2"/>
&lt;/column>
            </pre>

            <h1 id="selectCondition">condition</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>condition</b>是selectDim元素的属性，用于过滤下拉框的值，该属性为可选配置<br>
                注：只有下拉框的值通过查询数据库获取时，该配置才有意义，该配置用于过滤查询的结果集
            </blockquote>
            <pre class="layui-code">
&lt;column name="审批层级" field="checkLvl" aliasField="checkLvl" colType="1" isCondition="1" conditionType="3"&gt;
    &lt;!--配置下拉框的值来源于数据源2,且checkCode不为3-->
    &lt;selectDim table="tb_checklvl" code="checkCode" name="checkName" order="sortId desc" dataSource="2" condition="checkCode!=3"/>
&lt;/column>
            </pre>

            <h1 id="treeDim">treeDim</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>treeDim</b>是column元素的子元素，如果报表查询列的类型是树，则需要配置treeDim元素,<br>
                treeDim可配置多个，如果配置多个，多个树控件已Tab页的形式展示<br>
                注：该元素仅当查询列是树类型时(conditionType="5")，才需要配置
            </blockquote>
            <pre class="layui-code">
&lt;!--配置树选项-->
&lt;column name="机构" field="orgCode" aliasField="orgCode" colType="1" isCondition="1" conditionType="5"&gt;
    &lt;treeDim table="tb_orgInfo" code="orgCode" name="orgName" upcode="upperCode"/>
&lt;/column>
&nbsp;
&lt;!--配置树选项(多个树控件)-->
&lt;column name="机构" field="orgCode" aliasField="orgCode" colType="1" isCondition="1" conditionType="5"&gt;
    &lt;treeDim table="tb_orgInfo" code="orgCode" name="orgName" upcode="upperCode" tabName="机构"/>
    &lt;treeDim table="tb_areaInfo" code="areaCode" name="areaName" upcode="upperCode" tabName="行政区划"/>
&lt;/column>
            </pre>

            <h1 id="treeTable">table</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>table</b>是treeDim元素的属性，用于配置树的值来源于哪张表，该属性的值为表名，该属性为必配属性
            </blockquote>
            <pre class="layui-code">
&lt;column name="机构" field="orgCode" aliasField="orgCode" colType="1" isCondition="1" conditionType="5"&gt;
    &lt;!--配置机构信息来源于tb_orgInfo表-->
    &lt;treeDim table="tb_orgInfo" code="orgCode" name="orgName" upcode="upperCode"/>
&lt;/column>
            </pre>

            <h1 id="treeCode">code</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>code</b>是treeDim元素的属性，用于配置树的编码字段源于表中的哪个字段，该属性的值为数据库表的字段名，该属性为必配属性
            </blockquote>
            <pre class="layui-code">
&lt;column name="机构" field="orgCode" aliasField="orgCode" colType="1" isCondition="1" conditionType="5"&gt;
    &lt;!--配置机构编码来源于tb_orgInfo表的orgCode字段-->
    &lt;treeDim table="tb_orgInfo" code="orgCode" name="orgName" upcode="upperCode"/>
&lt;/column>
            </pre>

            <h1 id="treeName">name</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>name</b>是treeDim元素的属性，用于配置树的名称字段源于表中的哪个字段，该属性的值为数据库表的字段名，该属性为必配属性
            </blockquote>
            <pre class="layui-code">
&lt;column name="机构" field="orgCode" aliasField="orgCode" colType="1" isCondition="1" conditionType="5"&gt;
    &lt;!--配置机构名称来源于tb_orgInfo表的orgName字段-->
    &lt;treeDim table="tb_orgInfo" code="orgCode" name="orgName" upcode="upperCode"/>
&lt;/column>
            </pre>

            <h1 id="treeUpcode">upcode</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>upcode</b>是treeDim元素的属性，用于配置树的上级编码源于表中的哪个字段，该属性的值为数据库表的字段名，该属性为必配属性
            </blockquote>
            <pre class="layui-code">
&lt;column name="机构" field="orgCode" aliasField="orgCode" colType="1" isCondition="1" conditionType="5"&gt;
    &lt;!--配置上级机构编码来源于tb_orgInfo表的upperCode字段-->
    &lt;treeDim table="tb_orgInfo" code="orgCode" name="orgName" upcode="upperCode"/>
&lt;/column>
            </pre>

            <h1 id="rootCode">rootCode</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>rootCode</b>是treeDim元素的属性，用于配置树的根节点的值，该属性为可选配置，默认为空<br>
                注：该属性的值为表中code字段的值(在示例中为orgCode的值)
            </blockquote>
            <pre class="layui-code">
&lt;column name="机构" field="orgCode" aliasField="orgCode" colType="1" isCondition="1" conditionType="5"&gt;
    &lt;!--配置树的根节点为0001(如果0001为安徽省的编码，那么展示的树的根节点就为安徽省)-->
    &lt;treeDim table="tb_orgInfo" code="orgCode" name="orgName" upcode="upperCode" rootCode="0001"/>
&lt;/column>
            </pre>

            <h1 id="rightParam">rightParam</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>rightParam</b>是treeDim元素的属性，如果树组件需要动态控制权限，则需要配置该选项，
                例如：报表接入系统中安徽省的用户使用报表，那么他只能查看安徽省的数据，此时机构树只能选择安徽省的机构，此时就需要根据用户所属机构动态的控制权限；
                rightParam属性用于控制code(示例中的orgCode)权限，该属性为可选配置<br>
                注：动态的权限控制，需要和report元素中的thirdParam属性结合使用，且rightParam的属性值必须在thirdParam中配置
            </blockquote>
            <pre class="layui-code">
&lt;!--报表接入系统传入的参数为als_orgCode-->
&lt;report name="示例报表" thirdParam="als_orgCode">
&nbsp;
    &lt;column name="机构" field="orgCode" aliasField="orgCode" colType="1" isCondition="1" conditionType="5"&gt;
        &lt;!--rightParam的属性值在thirdParam配置中存在-->
        &lt;!--例如als_orgCode传入的值为0001(安徽省)，那么树组件仅展示安徽省及安徽省下的机构-->
        &lt;treeDim table="tb_orgInfo" code="orgCode" name="orgName" upcode="upperCode" rightParam="als_orgCode"/>
    &lt;/column>
&nbsp;
&lt;/report>
            </pre>

            <h1 id="rightField">rightField</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>rightField</b>是treeDim元素的属性，权限控制字段(大部分情况下该字段无需配置),通常情况下权限控制字段为code和upcode配置的字段，
                但是在某些特殊情况下权限控制的字段需要由额外的字段控制，此时需配置该字段的信息，该字段的值为数据表中对应的权限控制字段，该属性需要和rightParam
                配合使用,rightParam仅用于接收参数值，不参与权限控制。
            </blockquote>
            <pre class="layui-code">
&lt;!--报表接入系统传入的参数为als_orgCode-->
&lt;report name="示例报表" thirdParam="als_orgCode">
&nbsp;
    &lt;column name="机构" field="orgCode" aliasField="orgCode" colType="1" isCondition="1" conditionType="5"&gt;
        &lt;!--rightParam的属性值在thirdParam配置中存在-->
        &lt;!--例如als_orgCode传入的值为0001(安徽省)，那么树组件仅展示安徽省及安徽省下的机构-->
        &lt;treeDim table="tb_orgInfo" code="orgCode" name="orgName" upcode="upperCode" rightField="rightOrgCode" rightParam="als_orgCode"/>
    &lt;/column>
&nbsp;
&lt;/report>
            </pre>

            <h1 id="parentRightParam">parentRightParam</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>parentRightParam</b>是treeDim元素的属性，如果树组件需要动态控制权限，则需要配置该选项，
                例如：报表接入系统中安徽省的用户使用报表，那么他只能查看安徽省的数据，此时机构树只能选择安徽省的机构，此时就需要根据用户所属机构动态的控制权限；
                parentRightParam属性用于控制upcode(示例中的upperCode)权限，该属性为可选配置<br>
                注：动态的权限控制，需要和report元素中的thirdParam属性结合使用，且parentRightParam的属性值必须在thirdParam中配置
            </blockquote>
            <pre class="layui-code">
&lt;!--报表接入系统传入的参数为als_orgCode-->
&lt;report name="示例报表" thirdParam="als_orgCode">
&nbsp;
    &lt;column name="机构" field="orgCode" aliasField="orgCode" colType="1" isCondition="1" conditionType="5"&gt;
        &lt;!--rightParam的属性值在thirdParam配置中存在-->
        &lt;!--例如als_orgCode传入的值为0001(安徽省)，那么树组件仅展示安徽省下的机构(不显示安徽省本机构)-->
        &lt;treeDim table="tb_orgInfo" code="orgCode" name="orgName" upcode="upperCode" parentRightParam="als_orgCode"/>
    &lt;/column>
&nbsp;
&lt;/report>
            </pre>

            <h1 id="parentRightField">parentRightField</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>parentRightField</b>是treeDim元素的属性，权限控制字段(大部分情况下该字段无需配置),通常情况下权限控制字段为code和upcode配置的字段，
                但是在某些特殊情况下权限控制的字段需要由额外的字段控制，此时需配置该字段的信息，该字段的值为数据表中对应的权限控制字段，该属性需要和parentRightParam
                配合使用，parentRightParam仅用于接收参数值，不参与权限控制。
            </blockquote>
            <pre class="layui-code">
&lt;!--报表接入系统传入的参数为als_orgCode-->
&lt;report name="示例报表" thirdParam="als_orgCode">
&nbsp;
    &lt;column name="机构" field="orgCode" aliasField="orgCode" colType="1" isCondition="1" conditionType="5"&gt;
        &lt;!--rightParam的属性值在thirdParam配置中存在-->
        &lt;!--例如als_orgCode传入的值为0001(安徽省)，那么树组件仅展示安徽省下的机构(不显示安徽省本机构)-->
        &lt;treeDim table="tb_orgInfo" code="orgCode" name="orgName" upcode="upperCode" parentRightField="upperRightOrg" parentRightParam="als_orgCode"/>
    &lt;/column>
&nbsp;
&lt;/report>
            </pre>

            <h1 id="treeOrder">order</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>order</b>是treeDim元素的属性，用于配置树的排序方式，该属性为可选配置
            </blockquote>
            <pre class="layui-code">
&lt;column name="机构" field="orgCode" aliasField="orgCode" colType="1" isCondition="1" conditionType="5"&gt;
    &lt;!--配置树根据sortId倒序排列(sortId是表tb_orgInfo的字段)-->
    &lt;treeDim table="tb_orgInfo" code="orgCode" name="orgName" upcode="upperCode" order="sortId desc"/>
&lt;/column>
            </pre>

            <h1 id="treeDataSource">dataSource</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>dataSource</b>是treeDim元素的属性，用于配置树的数据源，该属性为可选配置<br>
                注：树的数据源默认和报表是相同的数据源，但是有些情况下树的数据源和报表的数据源不同，这时树的数据源需要额外配置
            </blockquote>
            <pre class="layui-code">
&lt;column name="机构" field="orgCode" aliasField="orgCode" colType="1" isCondition="1" conditionType="5"&gt;
    &lt;!--配置树的值来源于数据源2-->
    &lt;treeDim table="tb_orgInfo" code="orgCode" name="orgName" upcode="upperCode" dataSource="2"/>
&lt;/column>
            </pre>

            <h1 id="needDefauleValue">needDefauleValue</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>needDefauleValue</b>是treeDim元素的属性，用于配置树是否需要默认值，该属性可配置的值为：0-不需要 1-需要，
                如果需要默认值，默认值就是树的根节点；该属性为可选配置，默认不需要默认值
            </blockquote>
            <pre class="layui-code">
&lt;column name="机构" field="orgCode" aliasField="orgCode" colType="1" isCondition="1" conditionType="5"&gt;
    &lt;!--配置树不需要默认值(needDefauleValue="0"时，该属性可不用配置，因为默认即不需要默认值)-->
    &lt;treeDim table="tb_orgInfo" code="orgCode" name="orgName" upcode="upperCode" needDefauleValue="0"/>
&lt;/column>
&nbsp;
&lt;column name="机构" field="orgCode" aliasField="orgCode" colType="1" isCondition="1" conditionType="5"&gt;
    &lt;!--配置树需要默认值-->
    &lt;treeDim table="tb_orgInfo" code="orgCode" name="orgName" upcode="upperCode" needDefauleValue="1"/>
&lt;/column>
            </pre>

            <h1 id="needSearch">needSearch</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>needSearch</b>是treeDim元素的属性，用于配置树组件是否需要搜索功能，该属性可配置的值为：0-不需要 1-需要，
                默认不需要
            </blockquote>
            <pre class="layui-code">
&lt;column name="机构" field="orgCode" aliasField="orgCode" colType="1" isCondition="1" conditionType="5"&gt;
    &lt;!--配置树不需搜索功能(needSearch="0"时，该属性可不用配置，因为默认即不需要搜索)-->
    &lt;treeDim table="tb_orgInfo" needSearch="0" code="orgCode" name="orgName" upcode="upperCode" needDefauleValue="0"/>
&lt;/column>
&nbsp;
&lt;column name="机构" field="orgCode" aliasField="orgCode" colType="1" isCondition="1" conditionType="5"&gt;
    &lt;!--配置树需要搜索功能-->
    &lt;treeDim table="tb_orgInfo" needSearch="1" code="orgCode" name="orgName" upcode="upperCode" needDefauleValue="1"/>
&lt;/column>
            </pre>

            <h1 id="tabName">tabName</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>tabName</b>是treeDim元素的属性，当配置含多个tab的树控件时，该属性用于配置每个tab的名称
            </blockquote>
            <pre class="layui-code">
&lt;column name="机构" field="orgCode" aliasField="orgCode" colType="1" isCondition="1" conditionType="5"&gt;
    &lt;!--配置多个treeDim时，即表示树控件含多个tab页，tabName用于配置tab页的名称-->
    &lt;treeDim table="tb_orgInfo" code="orgCode" name="orgName" upcode="upperCode" needDefauleValue="0" tabName="机构"/>
    &lt;treeDim table="tb_areaInfo" code="areaCode" name="areaName" upcode="upperCode" tabName="行政区划"/>
&lt;/column>
            </pre>

            <h1 id="drill">drill</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>drill</b>是column元素的子元素，如果报表列需要下钻，则需要配置drill元素<br>
                注：该元素仅当报表列需要下钻(isDrill="1")，才需要配置；<b>需要注意的是下钻目标报表的report元素中
                必须配置initCondition属性用于接收参数，</b>下面的例子中点击客户数下钻到112报表，那么112报表的report
                元素中必须配置initCondition属性接收参数，属性的值为dril元素中param和conditionParam属性值的合集
            </blockquote>
            <pre class="layui-code">
&lt;!--配置报表列需要下钻-->
&lt;column name="客户数" field="custCnt" aliasField="custCnt" colType="0" isDrill="1"&gt;
    &lt;drill reportId="112" param="orgName" conditionParam="orgName"/>
&lt;/column>
&nbsp;
&lt;!--下钻目标报表中必须配置initCondition接收参数-->
&lt;report name="112报表" initCondition="orgName,date"&gt;
    &lt;!--112报表还需要配置aliasField="orgName"和aliasField="date"的列，用来获取参数的值，并将参数值用于SQL拼接-->
    &lt;column name="机构名称" field="a.org_name" aliasField="orgName" colType="1" isCondition="1" conditionType="1"/>
    &lt;column name="日期" field="a.date" aliasField="date" colType="1"  isCondition="1" conditionType="3"/>
&lt;/report>
            </pre>

            <h1 id="reportId">reportId</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>reportId</b>是drill元素的属性，该属性的值表示下钻到的报表ID，如配置为112，则表示下钻到112报表
            </blockquote>
            <pre class="layui-code">
&lt;!--点击报表的客户数列，下钻到112报表-->
&lt;column name="客户数" field="custCnt" aliasField="custCnt" colType="0" isDrill="1"&gt;
    &lt;!--reportId的值为报表ID-->
    &lt;drill reportId="112" param="" conditionParam=""/>
&lt;/column>
            </pre>

            <h1 id="param">param</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>param</b>是drill元素的属性，该属性的值表示下钻时传递的参数，报表下钻时传递的参数来源于两部分，其一是下钻列所在的行，
                其二是查询条件，其中行数据使用param属性配置，属性值为aliasField对应的属性值；查询条件使用conditionParam属性配置<br>
                例如：查询安徽、江苏两省在2018年9月份的客户数，其中月份为查询条件；查询结果有2行数据，点击客户数下钻时需要传递省份、月份
                两个参数，其中省份信息来源于客户数所在行，月份信息来源于查询条件，那么配置如下
            </blockquote>
            <pre class="layui-code">
&lt;!--日期查询列-->
&lt;column name="日期" field="a.date" aliasField="date" colType="1" isCondition="1" conditionType="3">&lt;/column>
&nbsp;
&lt;!--省份信息列-->
&lt;column name="省份" field="a.orgName" aliasField="orgName" colType="1">&lt;/column>
&lt;column name="地市" field="a.cityName" aliasField="cityName" colType="1">&lt;/column>
&nbsp;
&lt;!--点击报表的客户数列下钻-->
&lt;column name="客户数" field="a.custCnt" aliasField="custCnt" colType="0" isDrill="1"&gt;
    &lt;!--reportId的值为报表ID-->
    &lt;!--param属性值为报表中的省份列、地市列-->
    &lt;!--conditionParam属性值为报表中日期查询列(isCondition="1")-->
    &lt;drill reportId="112" param="orgName,cityName" conditionParam="date"/>
&lt;/column>
            </pre>

            <h1 id="conditionParam">conditionParam</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>conditionParam</b>是drill元素的属性，该属性的值表示下钻时传递的参数，报表下钻时传递的参数来源于两部分，其一是下钻列所在的行，
                其二是查询条件，其中行数据使用param属性配置，属性值为aliasField对应的属性值；查询条件使用conditionParam属性配置，当查询列为树或
                区间时，conditionParam的配置需要特别注意，树的编码为"hid_"+aliasField，树的名称为aliasField+"Id",区间需要配置两个，分别为：
                aliasField+"_start"、aliasField+"_end"
            </blockquote>
            <pre class="layui-code">
&lt;!--查询列为日期区间-->
&lt;column name="日期" field="a.date" aliasField="date" colType="1" isCondition="1" conditionType="4">&lt;/column>
&nbsp;
&lt;!--查询列为树-->
&lt;column name="产品种类" field="a.productCode" aliasField="productCode" colType="1" isCondition="1" conditionType="5">&lt;/column>
&nbsp;
&lt;!--省份信息列-->
&lt;column name="省份" field="a.orgName" aliasField="orgName" colType="1">&lt;/column>
&nbsp;
&lt;!--点击报表的客户数列下钻-->
&lt;column name="客户数" field="a.custCnt" aliasField="custCnt" colType="0" isDrill="1"&gt;
    &lt;!--reportId的值为报表ID-->
    &lt;!--注意日期区间和树的配置-->
    &lt;drill reportId="112" param="orgName" conditionParam="date_start,date_end,hid_productCode,productCodeId"/>
&lt;/column>
            </pre>

            <h1 id="nestFrom">nestFrom</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>nestFrom</b>是report元素的子元素，用于配置报表的嵌套SQL，该元素为可选配置，只有当报表有嵌套SQL时
                才需要配置，当报表只有一层嵌套时，配置方式如下
            </blockquote>
            <pre class="layui-code">
例如报表的查询SQL为：<br>
SELECT a.custName FROM (SELECT name FROM TB_CUST_INFO) a
&nbsp;
&lt;report name="嵌套SQL报表" &gt;
    &lt;column name="客户名称" field="a.custName" aliasField="custName" colType="1" />
    &nbsp;
    &lt;!--嵌套SQL的配置-->
    &lt;nestFrom&gt;
        SELECT name FROM TB_CUST_INFO
    &lt;/nestFrom>
&lt;/report>
            </pre>

            <h1 id="innerNestFrom">innerNestFrom</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>innerNestFrom</b>是nestFrom元素的子元素，当报表有嵌套SQL且嵌套多层时，需要使用该配置，该元素为可选配置。<br>
                innerNestFrom中的innerLevel属性为比配属性，innerLevel="0"表示第一层嵌套、innerLevel="-1"表示第二层嵌套，以此类推，
            </blockquote>
            <pre class="layui-code">
例如报表的查询SQL为：<br>
SELECT a.custName,a.productName FROM
    (SELECT custName FROM
        (SELECT productName FROM TB_INFO WHERE date = '20180913')
    ) a
&nbsp;
&nbsp;
&lt;report name="多层嵌套SQL报表" &gt;
    &nbsp;
    &lt;!--注意conditionLevel的配置，conditionLevel的配置和innerNestFrom中的innerLevel属性值对应，表示该查询条件拼接在对应嵌套层的SQL-->
    &lt;!--如果conditionLevel不配置，则表示查询条件不属于嵌套SQL，查询条件属于最外层的SQL-->
    &lt;column name="日期" field="date" aliasField="date" colType="1" isCondition="1" conditionType="3" conditionLevel="-1"/>
    &nbsp;
    &lt;column name="客户名称" field="a.custName" aliasField="custName" colType="1" />
    &lt;column name="产品名称" field="a.productName" aliasField="productName" colType="1" />
    &nbsp;
    &lt;!--嵌套SQL的配置-->
    &lt;nestFrom&gt;
        &lt;innerNestFrom innerLevel="0"&gt;
            SELECT custName
        &lt;/innerNestFrom>
        &lt;innerNestFrom innerLevel="-1"&gt;
            SELECT productName FROM TB_INFO
        &lt;/innerNestFrom>
    &lt;/nestFrom>
&lt;/report>
            </pre>

            <h1 id="defaultWhere">defaultWhere</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>defaultWhere</b>是report元素的子元素，用于配置报表的默认查询条件
            </blockquote>
            <pre class="layui-code">
例如报表的查询SQL为：<br>
SELECT a.custName FROM FROM TB_CUST_INFO a WHERE custType = '1'
&nbsp;
&lt;report name="示例报表" &gt;
    &lt;column name="客户名称" field="a.custName" aliasField="custName" colType="1" />
    &nbsp;
    &lt;from&gt;
        TB_CUST_INFO
    &lt;/from>
    &nbsp;
    &lt;!--报表的默认查询条件-->
    &lt;defaultWhere&gt;
        custType = '1'
    &lt;/defaultWhere>
&lt;/report>
            </pre>

            <h1 id="whereConditionLevel">conditionLevel</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>conditionLevel</b>是defaultWhere元素的属性，当报表包含嵌套SQL时，用于配置默认查询条件所属的嵌套层级，
                该属性的值和nestFrom中的innerLevel属性值对应；如果不配置则表示默认查询条件不属于嵌套SQL，默认查询条件属于
                最外层SQL，该属性为可选配置
            </blockquote>
            <pre class="layui-code">
例如报表的查询SQL为：<br>
SELECT a.custName FROM (SELECT name FROM TB_CUST_INFO WHERE custType='1') a
&nbsp;
&lt;report name="示例报表" &gt;
    &lt;column name="客户名称" field="a.custName" aliasField="custName" colType="1" />
    &nbsp;
    &lt;!--嵌套SQL的配置-->
    &lt;nestFrom&gt;
        SELECT name FROM TB_CUST_INFO
    &lt;/nestFrom>
    &nbsp;
    &lt;!--报表的默认查询条件属于嵌套层，需配置conditionLevel-->
    &lt;defaultWhere conditionLevel="0"&gt;
        custType = '1'
    &lt;/defaultWhere>
&lt;/report>
            </pre>

            <h1 id="andOR">and/or</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>and和or</b>是defaultWhere元素的子元素，报表的默认查询条件都是以AND拼接，但是有些情况下需要AND和OR混合
                使用，这时就需要使用and和or元素，该元素为可选配置
            </blockquote>
            <pre class="layui-code">
例如报表的查询SQL为：<br>
SELECT a.custName FROM TB_CUST_INFO a where (dayCode='20180811' AND mailType='1') OR (custType='1' AND custStatus='0')
其中custType='1'、mailType='1'为默认查询条件，其他的查询条件的值通过页面选择，那么配置如下：
&nbsp;
&lt;report name="示例报表" &gt;
    &lt;column name="客户名称" field="a.custName" aliasField="custName" colType="1" />
    &lt;!--查询条件列-->
    &lt;column name="日期" field="a.dayCode" aliasField="dayCode" colType="1" isCondition="1" conditionType="3" />
    &lt;!--注意isOrOperator的配置，isOrOperator="1"表示custStatus和custType都属于OR条件中-->
    &lt;column name="客户状态" field="a.custStatus" aliasField="custStatus" isCondition="1" conditionType="1" isOrOperator="1" />
    &nbsp;
    &lt;!--嵌套SQL的配置-->
    &lt;from&gt;
        TB_CUST_INFO
    &lt;/from>
    &nbsp;
    &lt;!--配置报表默认查询条件-->
    &lt;defaultWhere&gt;
        &lt;and>mailType='1'&lt;/and>
        &lt;or>custType = '1'&lt;/or>
    &lt;/defaultWhere>
&lt;/report>
            </pre>

            <h1 id="having">having</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>having</b>是report元素的子元素，用于配置报表的分组过滤条件，该元素是可选配置
            </blockquote>
            <pre class="layui-code">
例如报表的查询SQL为：<br>
SELECT a.custName FROM FROM TB_CUST_INFO a group by custName having count(cust_code) = 2
&nbsp;
&lt;report name="示例报表" &gt;
    &lt;column name="客户名称" field="a.custName" aliasField="custName" colType="1" />
    &nbsp;
    &lt;from&gt;
        TB_CUST_INFO
    &lt;/from>
    &nbsp;
    &lt;!--报表的默认查询条件-->
    &lt;having&gt;
        count(cust_code) = 2
    &lt;/having>
&lt;/report>
            </pre>
            <h1 id="havingLevel">havingLevel</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>havingLevel</b>是having元素的属性，当报表包含嵌套SQL时，用于配置默认查询条件所属的嵌套层级，
                该属性的值和nestFrom中的innerLevel属性值对应；如果不配置则表示默认查询条件不属于嵌套SQL，默认查询条件属于
                最外层SQL，该属性为可选配置
            </blockquote>
            <pre class="layui-code">
例如报表的查询SQL为：<br>
SELECT a.custName FROM (SELECT name FROM TB_CUST_INFO GROUP BY CUST_NAME HAVING COUNT(cust_code) = 2) a
&nbsp;
&lt;report name="示例报表" &gt;
    &lt;column name="客户名称" field="a.custName" aliasField="custName" colType="1" />
    &nbsp;
    &lt;!--嵌套SQL的配置-->
    &lt;nestFrom&gt;
        SELECT name FROM TB_CUST_INFO
    &lt;/nestFrom>
    &nbsp;
    &lt;!--报表的分组过滤条件属于嵌套层，需配置havingLevel-->
    &lt;having havingLevel="0"&gt;
        COUNT(cust_code) = 2
    &lt;/having>
&lt;/report>
            </pre>


            <h1 id="defaultGroup">group</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>group</b>是report元素的子元素，用于配置报表的默认分组，如果报表是嵌套SQL，则需要配置group中的conditionLevel属性，
                确认默认分组所属的嵌套SQL，conditionLevel的属性值和innerNestFrom元素中innerLevel的属性值相对应，conditionLevel为可选
                配置，如果不配置，默认属于最外层SQL的分组
            </blockquote>
            <pre class="layui-code">
例如报表的查询SQL为：<br>
SELECT a.custName,sum(mailCnt) FROM FROM TB_CUST_INFO a group by a.custName
&nbsp;
&lt;report name="示例报表" &gt;
    &lt;column name="客户名称" field="a.custName" aliasField="custName" colType="1" />
    &lt;column name="业务量" field="sum(mailCnt)" aliasField="mailCnt" colType="0" />
    &nbsp;
    &lt;from&gt;
        TB_CUST_INFO
    &lt;/from>
    &nbsp;
    &lt;!--报表的默认分组-->
    &lt;group&gt;
        a.custName
    &lt;/group>
&nbsp;
如果报表是嵌套SQL:：<br>
SELECT a.custName FROM (SELECT name FROM TB_CUST_INFO group by name) a
&nbsp;
&lt;report name="示例报表" &gt;
    &lt;column name="客户名称" field="a.custName" aliasField="custName" colType="1" />
    &nbsp;
    &lt;!--嵌套SQL的配置-->
    &lt;nestFrom&gt;
        SELECT name FROM TB_CUST_INFO
    &lt;/nestFrom>
    &nbsp;
    &lt;!--报表的默认分组属于嵌套层，需配置conditionLevel-->
    &lt;group conditionLevel="0"&gt;
        name
    &lt;/group>
&lt;/report>
&lt;/report>
            </pre>

            <h1 id="from">from</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>from</b>是report元素的子元素，用于配置报表查询的表名，from元素和nestFrom元素两者至少配置其中的一个，
                否则报表无法查询数据
            </blockquote>
            <pre class="layui-code">
例如报表的查询SQL为：<br>
SELECT a.custName,b.productName FROM FROM TB_CUST_INFO a left join TB_PRODUCT_INFO b ON a.sid = b.sid
&nbsp;
&lt;report name="示例报表" &gt;
    &lt;column name="客户名称" field="a.custName" aliasField="custName" colType="1" />
    &lt;column name="客户名称" field="b.productName" aliasField="productName" colType="1" />
    &nbsp;
    &lt;from&gt;
        TB_CUST_INFO a left join TB_PRODUCT_INFO b ON a.sid = b.sid
    &lt;/from>
&lt;/report>
            </pre>

            <h1 id="defaultOrder">order</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                <b>order</b>是report元素的子元素，用于配置报表默认的排序方式，该元素为可选配置
            </blockquote>
            <pre class="layui-code">
例如报表的查询SQL为：<br>
SELECT a.custName,a.productName FROM FROM TB_CUST_INFO ORDER BY SORTID DESC
&nbsp;
&lt;report name="示例报表" &gt;
    &lt;column name="客户名称" field="a.custName" aliasField="custName" colType="1" />
    &lt;column name="客户名称" field="a.productName" aliasField="productName" colType="1" />
    &nbsp;
    &lt;from&gt;
        TB_CUST_INFO
    &lt;/from>
    &nbsp;
    &lt;!--配置默认排序-->
    &lt;order&gt;
        SORTID DESC
    &lt;/order>
&lt;/report>
            </pre>

            <h1 id="replaceOpt">占位符</h1>
            <hr>
            <blockquote class="layui-elem-quote">
                报表配置中可以通过使用占位符，完成查询条件的赋值，占位符的使用方式为${aliasField},其中aliasField
                为配置文件中aliasField配置的值,对于区间类型的查询条件，则占位符使用${aliasField_start}和${aliasField_end}
                分别表示区间的开始值和结束值，该配置通常用于嵌套SQL
            </blockquote>
            <pre class="layui-code">
例如报表的查询SQL为：<br>
SELECT a.custName,a.productName FROM FROM TB_CUST_INFO WHERE a.dayCode = '20181120'
&nbsp;
&lt;report name="示例报表" &gt;
    &lt;column name="客户名称" field="a.custName" aliasField="custName" colType="1" />
    &lt;column name="客户名称" field="a.productName" aliasField="productName" colType="1" />
    &lt;column name="日期" field="a.dayCode" aliasField="dayCode" colType="1" isCondition="1" conditionType="3" formatter="yyyyMMdd"/>
    &nbsp;
    &lt;from&gt;
        TB_CUST_INFO
    &lt;/from>
    &lt;!--查询条件使用占位符--&gt;
    &lt;defaultWhere>
        a.dayCode = \${dayCode}
    &lt;/defaultWhere>
    &nbsp;
&lt;/report>
    &nbsp;
如果报表的查询SQL为(查询条件为区间)：<br>
SELECT a.custName,a.productName FROM FROM TB_CUST_INFO WHERE a.dayCode >= '20181120' AND a.dayCode <= '20181120'
&nbsp;
&lt;report name="示例报表" &gt;
    &lt;column name="客户名称" field="a.custName" aliasField="custName" colType="1" />
    &lt;column name="客户名称" field="a.productName" aliasField="productName" colType="1" />
    &lt;column name="日期" field="a.dayCode" aliasField="dayCode" colType="1" isCondition="1" conditionType="4" formatter="yyyyMMdd"/>
    &nbsp;
    &lt;from&gt;
        TB_CUST_INFO
    &lt;/from>
    &lt;!--查询条件使用占位符--&gt;
    &lt;defaultWhere>
        a.dayCode >= \${dayCode_start} and a.dayCode<=\${dayCode_end}
    &lt;/defaultWhere>
    &nbsp;
&lt;/report>
            </pre>
        </div>
    </div>

    <script>
        layui.use(['code','util','tree'], function(){
            layui.code({
                //encode: true,
                about: false,
                title: '示例配置',
                skin: 'notepad'
            });

            var util = layui.util;
            //固定块
            util.fixbar({});

            layui.tree({
                elem: '#tree',
                skin: 'treeStyle',
                nodes: [{
                    name: 'report(报表根元素)'
                    ,href: '#report'
                    ,children: [{
                        name: 'name',
                        href: '#reportName'
                    },{
                        name: 'needQuery',
                        href: '#needQuery'
                    },{
                        name: 'needSum',
                        href: '#needSum'
                    },{
                        name: 'needPage',
                        href: '#needPage'
                    },{
                        name: 'needImport',
                        href: '#needImport'
                    },{
                        name: 'needOffLine',
                        href: '#needOffLine'
                    },{
                        name: 'needAnalysis',
                        href: '#needAnalysis'
                    },{
                        name: 'rptStyle',
                        href: '#rptStyle'
                    },{
                        name: 'tmplateType',
                        href: '#tmplateType'
                    },{
                        name: 'thirdParam',
                        href: '#thirdParam'
                    },{
                        name: 'initCondition',
                        href: '#initCondition'
                    },{
                        name: 'isHideCondition',
                        href: '#isHideCondition'
                    },{
                        name: 'selfDefine',
                        href: '#selfDefine'
                    }]
                },
                {
                    name: 'column(报表列)',
                    href: '#column'
                    ,children: [{
                        name: 'name',
                        href: '#columnName'
                    },{
                        name: 'aliasName',
                        href: '#aliasName'
                    },{
                        name: 'field',
                        href: '#field'
                    },{
                        name: 'aliasField',
                        href: '#aliasField'
                    },{
                        name: 'colType',
                        href: '#colType'
                    },{
                        name: 'width',
                        href: '#width'
                    },{
                        name: 'align',
                        href: '#align'
                    },{
                        name: 'isCondition',
                        href: '#isCondition'
                    },{
                        name: 'conditionType',
                        href: '#conditionType'
                    },{
                        name: 'isNeed',
                        href: '#isNeed'
                    },{
                        name: 'defaultValue',
                        href: '#defaultValue'
                    },{
                        name: 'formatter',
                        href: '#formatter'
                    },{
                        name: 'dbFormatter',
                        href: '#dbFormatter'
                    },{
                        name: 'isDrill',
                        href: '#isDrill'
                    },{
                        name: 'relateName',
                        href: '#relateName'
                    },{
                        name: 'queryType',
                        href: '#queryType'
                    },{
                        name: 'isLock',
                        href: '#isLock'
                    },{
                        name: 'isSumCol',
                        href: '#isSumCol'
                    },{
                        name: 'isCount',
                        href: '#isCount'
                    },{
                        name: 'isOrOperator',
                        href: '#isOrOperator'
                    },{
                        name: 'innerDim',
                        href: '#innerDim'
                    },{
                        name: 'isShow',
                        href: '#isShow'
                    },{
                        name: 'numberFormat',
                        href: '#numberFormat'
                    },{
                        name: 'dynamicFormat',
                        href: '#dynamicFormat'
                    },{
                        name: 'isSQLColumn',
                        href: '#isSQLColumn'
                    },{
                        name: 'isQueryColumn',
                        href: '#isQueryColumn'
                    },{
                        name: 'group',
                        href: '#group'
                    },{
                        name: 'isSort',
                        href: '#isSort'
                    },{
                        name: 'isSelect',
                        href: '#isSelect'
                    },{
                        name: 'conditionLevel',
                        href: '#conditionLevel'
                    },{
                        name: 'cascade',
                        href: '#cascade'
                    },{
                        name: 'unit',
                        href: '#unit'
                    },{
                        name: 'isVisibility',
                        href: '#isVisibility'
                    },{
                        name: 'isDateType',
                        href: '#isDateType'
                    },{
                        name: 'multiTreeMode',
                        href: '#multiTreeMode'
                    },{
                        name: 'fontColorByValue',
                        href: '#fontColorByValue'
                    },{
                        name: 'fontColorByRange',
                        href: '#fontColorByRange'
                    },{
                        name: 'fontColorByRow',
                        href: '#fontColorByRow'
                    }]
                },
                {
                    name: 'selectDim(下拉框)',
                    href: '#selectDim'
                    ,children: [{
                        name: 'table',
                        href: '#selectTable'
                    },{
                        name: 'code',
                        href: '#selectCode'
                    },{
                        name: 'name',
                        href: '#selectName'
                    },{
                        name: 'order',
                        href: '#selectOrder'
                    },{
                        name: 'dataSource',
                        href: '#selectDataSource'
                    },{
                        name: 'condition',
                        href: '#selectCondition'
                    }]
                },
                {
                    name: 'treeDim(树)',
                    href: '#treeDim'
                    ,children: [{
                        name: 'table',
                        href: '#treeTable'
                    },{
                        name: 'code',
                        href: '#treeCode'
                    },{
                        name: 'name',
                        href: '#treeName'
                    },{
                        name: 'upcode',
                        href: '#treeUpcode'
                    },{
                        name: 'rootCode',
                        href: '#rootCode'
                    },{
                        name: 'rightParam',
                        href: '#rightParam'
                    },{
                        name: 'rightField',
                        href: '#rightField'
                    },{
                        name: 'parentRightParam',
                        href: '#parentRightParam'
                    },{
                        name: 'parentRightField',
                        href: '#parentRightField'
                    },{
                        name: 'order',
                        href: '#treeOrder'
                    },{
                        name: 'dataSource',
                        href: '#treeDataSource'
                    },{
                        name: 'needDefauleValue',
                        href: '#needDefauleValue'
                    },{
                        name: 'needSearch',
                        href: '#needSearch'
                    },{
                        name: 'tabName',
                        href: '#tabName'
                    }]
                },
                {
                    name: 'drill(报表下钻)',
                    href: '#drill'
                    ,children: [{
                        name: 'reportId',
                        href: '#reportId'
                    },{
                        name: 'param',
                        href: '#param'
                    }
                    ,{
                        name: 'conditionParam',
                        href: '#conditionParam'
                    }]
                },
                {
                    name: 'nestFrom(嵌套SQL)',
                    href: '#nestFrom'
                    ,children: [{
                        name: 'innerNestFrom',
                        href: '#innerNestFrom'
                    }]
                },
                {
                    name: 'defaultWhere(默认查询条件)',
                    href: '#defaultWhere'
                    ,children: [{
                        name: 'conditionLevel',
                        href: '#whereConditionLevel'
                    },{
                        name: 'and/or',
                        href: '#andOR'
                    }]
                },
                {
                    name: 'having(分组过滤条件)',
                    href: '#having'
                    ,children: [{
                        name: 'havingLevel',
                        href: '#havingLevel'
                    }]
                },
				{
                    name: 'select(下拉框)',
                    href: '#select'
                },
                {
                    name: 'group(默认分组)',
                    href: '#defaultGroup'
                },
                {
                    name: 'from(查询表)',
                    href: '#from'
                },
                {
                    name: 'order(默认排序)',
                    href: '#defaultOrder'
                },
                {
                    name: '占位符',
                    href: '#replaceOpt'
                }]
            });
        });
    </script>
</body>
</html>